/*
 * @Author: Bonnie
 * @Date: 2021-08-30 18:55:44
 * @LastEditTime: 2021-10-14 10:39:46
 * @LastEditors: Bonnie
 * @Description:
 * @FilePath: /custom/src/utils/index.js
 */

// 引入方式：
// main.js注入如下代码即可
// import Vue from "vue";
// import * as tools from "@/utils/index.js";
// for (let key in tools) {
//   Vue.prototype[`$${key}`] = tools[key];
// }

// 使用方式:
// this.$copy(content,tips)

/**
 * 将内容添加到剪切板
 * @param {*} content  String  需要复制到剪切板的文字
 * @param {*} tips  String 复制成功的提示
 */
export function copy(content, tips) {
  var ele = document.createElement("input"); //创建一个input标签
  ele.setAttribute("value", content); // 设置改input的value值
  document.body.appendChild(ele); // 将input添加到body
  ele.select(); // 获取input的文本内容
  document.execCommand("copy"); // 执行copy指令
  document.body.removeChild(ele); // 删除input标签
  if (tips == null) {
    // 显示复制成功之后的提示文本
    // alert("已将内容复制到剪切板");
    this.$message.success("已将内容复制到剪切板");
  } else {
    // alert(tips);
    this.$message.success(tips);
  }
}

/**
 * 校验是否为手机号
 * @param {*} phone Number 11位
 */
export function isPhone(phone) {
  return /^1[3456789]\d{9}$/.test(phone);
}

/**
 * 生成短uid
 *
 * @param {*} temp uuid长度
 */
export function genShortUID(temp = 5) {
  var uuid = "";
  for (let i = 0; i < temp; i++) {
    var r = (new Date().getTime() + Math.random() * 16) % 16 | 0;
    uuid += r.toString(16);
  }
  return uuid;
}

/**
 * 函数防抖
 * @param {*} callback 回调函数
 * @param {*} delay 延迟时间
 */
/**
 * 使用方式：
 * 1.组件内引入 import { _debounce } from "@/utils";
 * 2.调用方法  inputHandle: _debounce(function() { console.log("巴拉巴拉 22", this.m); }, 5 * 1000)
 */
export function debounce(callback, delay = 2 * 1000) {
  console.log("delay: ", delay);
  var timer = null;
  return function() {
    var _this = this;
    var args = arguments;
    if (timer) clearTimeout(timer);
    timer = setTimeout(() => {
      callback.apply(_this, args);
    }, delay);
  };
}

/**
 * 获取cookie
 * @param {*} name cookie名
 */
export const getCookie = function(name) {
  // 获取cookie
  let arr,
    reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
  if ((arr = document.cookie.match(reg))) {
    return unescape(arr[2]);
  } else {
    return null;
  }
};

/**
 * 退出登录
 * 清除所有cookie的value值
 */
export const logout = function(c_name) {
  let cookies = document.cookie.split("; ");
  for (let i = 0; i < cookies.length; i++) {
    let str = "";
    let cookie = cookies[i];
    let eqPos = cookie.indexOf("=");
    let exp = new Date();
    exp.setTime(exp.getTime() - 1).toGMTString;
    let name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
    str = name + "=;expires=" + exp + ";path=/;";
    document.cookie = str;
    console.log("str: ", str);
  }
};
